home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
pcl
/
sptmbr11.lha
/
instructions-for-building-akcl
< prev
next >
Wrap
Lisp/Scheme
|
1992-06-08
|
6KB
|
183 lines
This file contains instructions for building akcl-1-615, and also contains
instructions on how to build PCL,CLCS,CLX,an inspecter,CLUE, and CLIO in akcl.
#Let top be the directory that will contain the directories kcl,akcl-1-615, and systems
cd whatever-top-should-be
set top = `pwd`
cd top
#get kcl.tar.Z and akcl-1-615.tar.Z from rascal.ics.utexas.edu:pub.
mkdir kcl
cd kcl
zcat ../kcl.tar | tar xf -
cd ..
mkdir akcl-1-615
cd akcl-1-615
zcat ../akcl-1-615.tar.Z | tar xf -
#optional: edit h/sun4.defs, so that it uses gcc instead (maybe remove -g to save space)
# you can change the refrence to gcc to (something like) /usr/local/gnu/bin/gcc
# don't change the as, though, or if you do, make it /bin/as
add-defs sun4 $top/kcl
make -f Smakefile
#let it run until it stops.
#If it worked, skip this:
-----------------------------------------------------------------
#If it stops with an error while creating raw_kcl, do
rm unixport/raw_kcl
#There is some problem with gcc or the gnu linker that causes an error related
#to the c files that are initially linked to ../lsp/dummy.c.
#If you have previously created a recent version of akcl, you can do:
# cp -p OLD/unixport/saved_kcl unixport/saved_kcl
# make -f Smakefile
#and skip the rest of this step.
#Otherwise, do
cp -p unixport/makefile unixport/makefile.save
# edit unixport/makefile, changing the definitions of LSPOBJS and CMPOBJS to:
LSPOBJS = $(LSPDIR)/assert.o $(LSPDIR)/describe.o $(LSPDIR)/evalmacros.o \
$(LSPDIR)/iolib.o $(LSPDIR)/listlib.o $(LSPDIR)/mislib.o \
$(LSPDIR)/module.o $(LSPDIR)/numlib.o $(LSPDIR)/seq.o \
$(LSPDIR)/seqlib.o $(LSPDIR)/top.o $(LSPDIR)/trace.o
CMPOBJS = $(CMPDIR)/cmpbind.o $(CMPDIR)/cmpcatch.o $(CMPDIR)/cmpif.o \
$(CMPDIR)/cmplet.o $(CMPDIR)/cmpmap.o $(CMPDIR)/cmpmulti.o
#next, do:
cd unixport
make
#when that finishes, do:
mv makefile makefile.temp
mv makefile.save makefile
cd ..
make -f Smakefile
-----------------------------------------------------------------
#gcc apparently does not compile c/main.c correctly:
# segmentation violations cause kcl to die.
#if you did not use gcc, skip this step.
#edit h/sun4.defs, commenting out the gcc line and uncommenting the cc line
add-defs sun4 `top`/kcl
make -f Smakefile sources
cd o
rm main.o
make
cd ..
#edit h/sun4.defs, uncommenting the gcc line and commenting the cc line
add-defs sun4 $top/kcl
make -f Smakefile
-----------------------------------------------------------------
The next six changes are optional (but if you do any of the
second through sixth changes, you should do them all):
- - - - - - - - - - - - - - - -
lsp/top.lsp: make the first catch form in top-level be:
(catch *quit-tag*
(cond (*multiply-stacks* (setq *multiply-stacks* nil))
((dotimes (i (si:argc) t)
(when (equal (si:argv i) "-noinit")
(return nil)))
(let ((tem (string-concatenate *system-directory*
"sys-init.lsp")))
(when (probe-file tem)
(load tem :verbose nil)))
(let ((home (or (getenv "HOME") "")))
(cond ((probe-file (format nil "~a/lisp-init.lisp" home))
(load (format nil "~a/lisp-init.lisp" home)))))))
(and (functionp *top-level-hook*)(funcall *top-level-hook*)))
c/file.d: change:
LSP_string = make_simple_string("lsp");
to:
LSP_string = make_simple_string("lisp");
cmpnew/cmpmain.lsp:
change the line:
(setq gaz (get-output-pathname gaz "lsp" (car args)))
to:
(setq gaz (get-output-pathname gaz "lisp" (car args)))
and change every occurrence of #".lsp" to #".lisp"
-- do not change the lsp to lisp for the loads of "./cmpinit.lsp"!
V/makefile: change the second line after the command: step.
From:
command:
(cd $(PORTDIR); rm -f ../xbin/akcl ; echo "#!/bin/sh" > ../xbin/akcl; \
echo "`pwd`/saved_kcl `pwd`/" >> ../xbin/akcl)
To:
command:
(cd $(PORTDIR); rm -f ../xbin/akcl ; echo "#!/bin/sh" > ../xbin/akcl; \
echo "`pwd`/saved_kcl `pwd`/ \$${*}">> ../xbin/akcl)
V/lsp/makefile:
From:
.lsp.c:
@ ../xbin/if-exists $(PORTDIR)/saved_kcl \
"rm -f $*.c $*.h $*.data $*.o" \
"$(PORTDIR)/saved_kcl $(PORTDIR)/ $* $* S0111"
.lsp.o:
@ ../xbin/if-exists $(PORTDIR)/saved_kcl \
"rm -f $*.c $*.h $*.data $*.o" \
"$(PORTDIR)/saved_kcl $(PORTDIR)/ $* $* S0111" \
To:
.lsp.c:
@ ../xbin/if-exists $(PORTDIR)/saved_kcl \
"rm -f $*.c $*.h $*.data $*.o" \
"$(PORTDIR)/saved_kcl $(PORTDIR)/ $*.lsp $*.o S0111"
.lsp.o:
@ ../xbin/if-exists $(PORTDIR)/saved_kcl \
"rm -f $*.c $*.h $*.data $*.o" \
"$(PORTDIR)/saved_kcl $(PORTDIR)/ $*.lsp $*.o S0111" \
V/cmpnew/makefile:
From:
@s| @ ../xbin/if-exists $(PORTDIR)/saved_kcl \
"rm -f $*.c $*.h $*.data $*.o" \
"$(PORTDIR)/saved_kcl $(PORTDIR)/ $* $* S0111"
To:
@s| @ ../xbin/if-exists $(PORTDIR)/saved_kcl \
"rm -f $*.c $*.h $*.data $*.o" \
"$(PORTDIR)/saved_kcl $(PORTDIR)/ $*.lsp $*.o S0111"
and From:
.lsp.o:
@ ../xbin/if-exists $(PORTDIR)/saved_kcl \
"rm -f $*.c $*.h $*.data $*.o" \
"$(PORTDIR)/saved_kcl $(PORTDIR)/ $* $* S0111" \
To:
.lsp.o:
@ ../xbin/if-exists $(PORTDIR)/saved_kcl \
"rm -f $*.c $*.h $*.data $*.o" \
"$(PORTDIR)/saved_kcl $(PORTDIR)/ $*.lsp $*.o S0111" \
- - - - - - - - - - - - - - - -
Fix bad calls to FEerror in the c directory:
#do:
cd c
etags *.*
cd ..
#and then, in emacs, visit that tags table (m-x visit-tags-table)
#and do m-x tags-search FEerror(
#and make sure every call to FEerror has at least two args.
#for example, change:
FEerror("bad rb_end");
#to
FEerror("bad rb_end",0);
#Use m-, to go to the next occurrence;
#if you need to change the call, use c-m-f ,0
#change every call that needs it.
#There are several occurences of calls to FEerror where there
#is a number first, then a string. Be sure to switch the first two args
#in those cases.
#then do
make -f Smakefile
#again.
=================================================================================
cd top
#get March-92-systems.tar.Z and clue-and-clio.tar.Z from parcftp.xerox.com:pub/pcl
mkdir systems
cd systems
zcat March-92-systems.tar.Z | tar xf -
zcat clue-and-clio.tar.Z | tar xf -
#edit the first two lines of the file makefile (and possibly the next two lines).
make